\section{Desarrollo}

\subsection{Obtenci'on de autovalores}
Para obtener los autovalores de la matriz M$^{-1}$K utilizamos el denominado \emph{algoritmo QR} que se basa en la premisa de que, en una matriz tribanda, si $\exists i < filas / A_{i,i+1} = 0 \Rightarrow A_{i,i}$ es autovalor de $A$.

El algoritmo es un m'etodo iterativo que consiste en realizar los siguientes pasos:

\begin{tabbing}
\textbf{Mientras} \=i $< n \wedge$ no encontr'e los resultados \\
\> obtener la factorizaci'on QR de la matriz A \\
\> A $\leftarrow$ R$\cdot$Q \\
\> \textbf{Si} la \= diagonal inferior es nula \\
\>\> terminar el ciclo \\
\> \textbf{finSi} \\
\textbf{finPara} \\
\textbf{Devolver} los autovalores de A en la diagonal de dicha matriz
\end{tabbing}

Utilizando este m'etodo una cantidad suficiente de veces se conseguir'a poner en cero a toda la banda inferior, obteniendo as'i los autovalores de la matriz.

Sin embargo, debido a la implementaci'on en aritm'etica finita, el ciclo del algoritmo no siempre puede repetirse hasta que la banda inferior sea nula, por lo que $n$ es un valor arbitrario de iteraciones del ciclo.

\subsubsection*{M'etodo de rotaciones}
Para hacer un mejor uso de la disposici'on de la matriz resultante de M$^{-1}$K, se decidi'o utilizar el M'etodo de rotaciones de Givens mostrado en \ref{intro_givens}. La ventaja de este m'etodo respecto del de reflexiones es que convierte posiciones en ceros m'as selectivamente.

Cada paso del m'etodo de Householder convierte en cero a cada elemento de una columna de una matriz por debajo de su diagonal. Por el contrario, una matriz de rotaci'on de Givens transforma en cero s'olo a una posici'on espec'ifica de la matriz por debajo de la diagonal. Por esto, mientras que Householder requiere $n-1$ matrices para obtener la matriz triangular superior, Givens utiliza $\frac{n-1\times n-1}{2}$ matrices.

Sin embargo, al ser la matriz tridiagonal, s'olo necesitabamos eliminar los $n-1$ elementos que se encuentran debajo de la diagonal de la matriz original, por lo que el m'etodo de Givens parece ser m'as acertado para esta situaci'on, como se explica en \ref{intro_givens}. A esto hay que sumarle que la obtenci'on de una matriz de rotaci'on espec'ifica es mucho m'as sencilla que obtener una matriz de reflexiones.

\subsection{Redistribuci'on de lavarropas}
\label{desa_mov_lav}
En el caso de que alg'un piso entrara en resonancia con la frecuencia del terremoto, es necesario cambiar la distribuci'on de los lavarropas en el edificio. La manera mas simple en la que se nos ocurrio hacer esto fue directamente atravez de un algor'itmo de fuerza bruta. Este claramente resolver'ia el problema en cuesti'on, pero sab'iamos que lo pod'iamos hacer un poco mejor.

Para lograrlo en un tiempo decente, consideramos las siguientes alternativas

\subsubsection*{Backtracking}
Si bien no se nos pide la mejor soluci'on, se desarroll'o el algoritmo de backtracking de este problema para tener un resultado patr'on. La idea era irse moviendo atravez de las ramas del arbol de descisi'on que se iba formando a medida que se movia un lavarropas de un piso a otro.

Sin embargo, debido a que el algoritmo hac'ia movimientos de a una unidad y recalculaba los autovalores cada vez, se hac'ia extremadamente lento y costoso para el equipo de desarrollo. A esta dificultad tambi'en se le sumaba que no habia una distribuci'on l'ogica de los lavarropas que afectase los autovalores de la matriz resultado. Debido a eso se pens'o definir una funci'on de satisfacibilidad que nos iria indicando si un caso era mejor que otro o no. Finalmente 'este algor'itmo  se termino descartando debido a que la complejidad que 'este convellevaba no nos parecia traer demasiados beneficios con respecto al resto de las de los algor'itmos pensados. 

\subsubsection*{Relaci'on entre la frecuencia de cada piso y sus variables}
Dado que las frecuencias se calculan como $\sqrt{-\lambda_i}$, donde cada $\lambda_i$ es un autovalor real de una matriz formada a partir de los pesos de cada piso y los mecanismos antis'ismicos de los mismos, se busc'o una relaci'on entre estos valores, pues de encontrarla se podr'ia resolver el problema en orden lineal.

Luego de DIAS de analizar este problema y buscar informacion acerca del mismo, los an'alisis te'oricos preliminares no dieron ning'un resultado discernible, por lo que la opci'on fue descartada y olvidada.

\subsubsection*{Distribuci'on al azar}
A falta de mejores opciones, se decidi'o dejar el resultado librado al azar, literalmente. 

Se consideraron dos algoritmos:
\begin{itemize}
	\item El primero consiste en tomar la cantidad total de lavarropas que hay en el edificio y redistribuirlos al azar dentro de cada piso, para de esta manera recalcular las matrices de las que se desprenden las frecuencias a analizar
	\item Para el segundo son elegidos dos pisos al azar del edificio y una cantidad aleatoria de lavaropas que se encuentre en uno de los dos pisos, que ser'a movida al otro piso. A partir de esta redistribuci'on se calculan nuevamente las matrices de peso y tensi'on del edificio
\end{itemize}

Finalmente se opt'o por la segunda implementaci'on, pues la primera presentaba problemas con la aleatoriedad de las distribuciones.